home *** CD-ROM | disk | FTP | other *** search
/ The Guided Tour of Multimedia (Second Edition) / The Guided Tour of Multimedia (Second Edition).iso / trials / qtw111 / inc / digitalv.h < prev    next >
C/C++ Source or Header  |  1993-01-12  |  31KB  |  863 lines

  1. /****************************************************************************
  2.  *
  3.  *        DIGITALV.H - Include file for the MCI Digital Video Command Set
  4.  *
  5.  *                              Version 1.0
  6.  *
  7.  *        Copyright (c) 1992, Microsoft Corp.  All rights reserved.
  8.  *
  9.  *  Date            Modification
  10.  *  ------------    ------------
  11.  *  Aug 19, 1992    -Version 1.0 Release
  12.  *
  13.  *     
  14.  *    If you did not get this from Microsoft Sources, then it may not be the
  15.  *    most current version.  
  16.  *
  17.  *    Sources are:
  18.  *        The MM Sys BBS: The phone number is 206 936-4082.
  19.  *    CompuServe:    WINSDK forum, MDK section.
  20.  *    Anon. FTP:    ftp.uu.net vendors\microsoft\multimedia
  21.  *
  22.  ****************************************************************************/
  23.  
  24. #ifndef _INC_DIGITALV
  25. #define _INC_DIGITALV  100
  26.  
  27. #ifndef NODIGITALV
  28.  
  29. #ifndef RC_INVOKED
  30. #pragma pack(1)         /* Assume byte packing throughout */
  31. #endif  /* RC_INVOKED */
  32.  
  33. #ifdef __cplusplus
  34. extern "C" {            /* Assume C declarations for C++ */
  35. #endif    /* __cplusplus */
  36.  
  37. #define MCI_TEST                            0x00000020L
  38.  
  39. /* Message values */
  40.  
  41. #define MCI_CAPTURE                         0x0870 
  42. #define MCI_MONITOR                         0x0871 
  43. #define MCI_RESERVE                         0x0872 
  44. #define MCI_SETAUDIO                        0x0873 
  45. #define MCI_SIGNAL                          0x0875 
  46. #define MCI_SETVIDEO                        0x0876 
  47. #define MCI_QUALITY                         0x0877
  48. #define MCI_LIST                            0x0878
  49. #define MCI_UNDO                            0x0879
  50. #define MCI_CONFIGURE                       0x087a
  51. #define MCI_RESTORE                         0x087b
  52.  
  53. /* Return and string constant values */
  54.  
  55. #define MCI_ON   1
  56. #define MCI_OFF  0
  57.  
  58. #define MCI_DGV_FILE_MODE_SAVING            0x0001
  59. #define MCI_DGV_FILE_MODE_LOADING           0x0002
  60. #define MCI_DGV_FILE_MODE_EDITING           0x0003
  61. #define MCI_DGV_FILE_MODE_IDLE              0x0004
  62.  
  63. /* These identifiers are used only by device drivers */
  64.  
  65. #define MCI_ON_S                            0x00008000L
  66. #define MCI_OFF_S                           0x00008001L
  67. #define MCI_DGV_FILE_S                      0x00008002L
  68. #define MCI_DGV_INPUT_S                     0x00008003L
  69.  
  70. #define MCI_DGV_FILE_MODE_SAVING_S          0x00008004L
  71. #define MCI_DGV_FILE_MODE_LOADING_S         0x00008005L
  72. #define MCI_DGV_FILE_MODE_EDITING_S         0x00008006L
  73. #define MCI_DGV_FILE_MODE_IDLE_S            0x00008007L
  74.  
  75. #define MCI_DGV_SETVIDEO_SRC_NTSC_S         0x00008010L
  76. #define MCI_DGV_SETVIDEO_SRC_RGB_S          0x00008011L
  77. #define MCI_DGV_SETVIDEO_SRC_SVIDEO_S       0x00008012L
  78. #define MCI_DGV_SETVIDEO_SRC_PAL_S          0x00008013L
  79. #define MCI_DGV_SETVIDEO_SRC_SECAM_S        0x00008014L
  80. #define MCI_DGV_SETVIDEO_SRC_GENERIC_S      0x00008015L
  81.  
  82. #define MCI_DGV_SETAUDIO_SRC_LEFT_S         0x00008020L
  83. #define MCI_DGV_SETAUDIO_SRC_RIGHT_S        0x00008021L
  84. #define MCI_DGV_SETAUDIO_SRC_AVERAGE_S      0x00008022L
  85. #define MCI_DGV_SETAUDIO_SRC_STEREO_S       0x00008023L
  86.  
  87. /* Window message for signal notification */
  88.  
  89. #define MM_MCISIGNAL                        0x3CB
  90.  
  91. /* error values */
  92.  
  93. #define MCIERR_DGV_DEVICE_LIMIT             (MCIERR_CUSTOM_DRIVER_BASE+0)
  94. #define MCIERR_DGV_IOERR                    (MCIERR_CUSTOM_DRIVER_BASE+1) 
  95. #define MCIERR_DGV_WORKSPACE_EMPTY          (MCIERR_CUSTOM_DRIVER_BASE+2) 
  96. #define MCIERR_DGV_DISK_FULL                (MCIERR_CUSTOM_DRIVER_BASE+3) 
  97. #define MCIERR_DGV_DEVICE_MEMORY_FULL       (MCIERR_CUSTOM_DRIVER_BASE+4)
  98. #define MCIERR_DGV_BAD_CLIPBOARD_RANGE      (MCIERR_CUSTOM_DRIVER_BASE+5)
  99.  
  100. /* defines for monitor methods */
  101.  
  102. #define MCI_DGV_METHOD_PRE                  0x0000a000L
  103. #define MCI_DGV_METHOD_POST                 0x0000a001L
  104. #define MCI_DGV_METHOD_DIRECT               0x0000a002L
  105.  
  106. /* defines for known file formats */
  107.  
  108. #define MCI_DGV_FF_AVSS                     0x00004000L
  109. #define MCI_DGV_FF_AVI                      0x00004001L
  110. #define MCI_DGV_FF_DIB                      0x00004002L
  111. #define MCI_DGV_FF_RDIB                     0x00004003L
  112. #define MCI_DGV_FF_JPEG                     0x00004004L
  113. #define MCI_DGV_FF_RJPEG                    0x00004005L
  114. #define MCI_DGV_FF_JFIF                     0x00004006L
  115. #define MCI_DGV_FF_MPEG                     0x00004007L
  116.  
  117. /* values for dwItem field of MCI_CAPABILITY_PARMS structure */
  118.  
  119. #define MCI_DGV_GETDEVCAPS_CAN_LOCK         0x00004000L
  120. #define MCI_DGV_GETDEVCAPS_CAN_STRETCH      0x00004001L 
  121. #define MCI_DGV_GETDEVCAPS_CAN_FREEZE       0x00004002L
  122. #define MCI_DGV_GETDEVCAPS_MAX_WINDOWS      0x00004003L 
  123. #define MCI_DGV_GETDEVCAPS_CAN_REVERSE      0x00004004L 
  124. #define MCI_DGV_GETDEVCAPS_HAS_STILL        0x00004005L
  125. #define MCI_DGV_GETDEVCAPS_PALETTES         0x00004006L
  126. #define MCI_DGV_GETDEVCAPS_CAN_STR_IN       0x00004008L 
  127. #define MCI_DGV_GETDEVCAPS_CAN_TEST         0x00004009L
  128. #define MCI_DGV_GETDEVCAPS_MAXIMUM_RATE     0x0000400aL
  129. #define MCI_DGV_GETDEVCAPS_MINIMUM_RATE     0x0000400bL
  130.  
  131. /* flags for dwFlags parameter of MCI_CAPTURE command message */
  132.  
  133. #define MCI_DGV_CAPTURE_AS                  0x00010000L
  134. #define MCI_DGV_CAPTURE_AT                  0x00020000L
  135.  
  136. /* flags for dwFlags parameter of MCI_COPY command message */
  137.  
  138. #define MCI_DGV_COPY_AT                     0x00010000L
  139. #define MCI_DGV_COPY_AUDIO_STREAM           0x00020000L
  140. #define MCI_DGV_COPY_VIDEO_STREAM           0x00040000L
  141.  
  142. /* flags for dwFlags parameter of MCI_CUE command message */
  143.  
  144. #define MCI_DGV_CUE_INPUT                   0x00010000L 
  145. #define MCI_DGV_CUE_OUTPUT                  0x00020000L
  146. #define MCI_DGV_CUE_NOSHOW                  0x00040000L 
  147.  
  148. /* flags for dwFlags parameter of MCI_CUT command message */
  149.  
  150. #define MCI_DGV_CUT_AT                      0x00010000L
  151. #define MCI_DGV_CUT_AUDIO_STREAM            0x00020000L
  152. #define MCI_DGV_CUT_VIDEO_STREAM            0x00040000L
  153.  
  154. /* flags for dwFlags parameter of MCI_DELETE command message */
  155.  
  156. #define MCI_DGV_DELETE_AT                   0x00010000L
  157. #define MCI_DGV_DELETE_AUDIO_STREAM         0x00020000L
  158. #define MCI_DGV_DELETE_VIDEO_STREAM         0x00040000L
  159.  
  160. /* flags for dwFlags parameter of MCI_FREEZE command message */
  161.  
  162. #define MCI_DGV_FREEZE_AT                   0x00010000L
  163. #define MCI_DGV_FREEZE_OUTSIDE              0x00020000L
  164.  
  165. /* flags for dwFlags parameter of MCI_INFO command message */
  166.  
  167. #define MCI_DGV_INFO_TEXT                   0x00010000L 
  168. #define MCI_DGV_INFO_ITEM                   0X00020000L
  169.  
  170. /* values for dwItem field of MCI_DGV_INFO_PARMS structure */
  171.  
  172. #define MCI_INFO_VERSION                    0x00000400L
  173.  
  174. #define MCI_DGV_INFO_USAGE                  0x00004000L
  175. #define MCI_DGV_INFO_AUDIO_QUALITY          0x00004001L
  176. #define MCI_DGV_INFO_STILL_QUALITY          0x00004002L
  177. #define MCI_DGV_INFO_VIDEO_QUALITY          0x00004003L
  178. #define MCI_DGV_INFO_AUDIO_ALG              0x00004004L
  179. #define MCI_DGV_INFO_STILL_ALG              0x00004005L
  180. #define MCI_DGV_INFO_VIDEO_ALG              0x00004006L
  181.  
  182. /* flags for dwFlags parameter of MCI_LIST command message */
  183.  
  184. #define MCI_DGV_LIST_ITEM                   0x00010000L
  185. #define MCI_DGV_LIST_COUNT                  0x00020000L
  186. #define MCI_DGV_LIST_NUMBER                 0x00040000L
  187. #define MCI_DGV_LIST_ALG                    0x00080000L
  188.  
  189. /* values for dwItem field of MCI_DGV_LIST_PARMS structure */
  190.  
  191. #define MCI_DGV_LIST_AUDIO_ALG              0x00004000L
  192. #define MCI_DGV_LIST_AUDIO_QUALITY          0x00004001L
  193. #define MCI_DGV_LIST_AUDIO_STREAM           0x00004002L
  194. #define MCI_DGV_LIST_STILL_ALG              0x00004003L
  195. #define MCI_DGV_LIST_STILL_QUALITY          0x00004004L
  196. #define MCI_DGV_LIST_VIDEO_ALG              0x00004005L
  197. #define MCI_DGV_LIST_VIDEO_QUALITY          0x00004006L
  198. #define MCI_DGV_LIST_VIDEO_STREAM           0x00004007L
  199. #define MCI_DGV_LIST_VIDEO_SOURCE           0x00004008L
  200.  
  201.  
  202. /* flags for dwFlags parameter of MCI_MONITOR command message */
  203.  
  204. #define MCI_DGV_MONITOR_METHOD              0x00010000L
  205. #define MCI_DGV_MONITOR_SOURCE              0x00020000L
  206.  
  207. /* values for dwSource parameter of the MCI_DGV_MONITOR_PARMS struture */
  208.  
  209. #define MCI_DGV_MONITOR_INPUT               0x00004000L
  210. #define MCI_DGV_MONITOR_FILE                0x00004001L
  211.  
  212. /* flags for dwFlags parameter of MCI_OPEN command message */
  213.  
  214. #define MCI_DGV_OPEN_WS                     0x00010000L 
  215. #define MCI_DGV_OPEN_PARENT                 0x00020000L
  216. #define MCI_DGV_OPEN_NOSTATIC               0x00040000L
  217.  
  218. /* flags for dwFlags parameter of MCI_PASTE command message */
  219.  
  220. #define MCI_DGV_PASTE_AT                    0x00010000L
  221. #define MCI_DGV_PASTE_AUDIO_STREAM          0x00020000L
  222. #define MCI_DGV_PASTE_VIDEO_STREAM          0x00040000L
  223. #define MCI_DGV_PASTE_INSERT                0x00080000L
  224. #define MCI_DGV_PASTE_OVERWRITE             0x00100000L
  225.  
  226. /* flags for dwFlags parameter of MCI_PLAY command message */
  227.  
  228. #define MCI_DGV_PLAY_REPEAT                 0x00010000L                
  229. #define MCI_DGV_PLAY_REVERSE                0x00020000L 
  230.  
  231. /* flags for dwFlags parameter of MCI_PUT command message */
  232.  
  233. #define MCI_DGV_RECT                        0x00010000L 
  234. #define MCI_DGV_PUT_SOURCE                  0x00020000L 
  235. #define MCI_DGV_PUT_DESTINATION             0x00040000L 
  236. #define MCI_DGV_PUT_FRAME                   0x00080000L
  237. #define MCI_DGV_PUT_VIDEO                   0x00100000L
  238. #define MCI_DGV_PUT_WINDOW                  0x00200000L
  239. #define MCI_DGV_PUT_CLIENT                  0x00400000L
  240.  
  241. /* flags for dwFlags parameter of MCI_QUALITY command message */
  242.  
  243. #define MCI_QUALITY_ITEM                    0x00010000L
  244. #define MCI_QUALITY_NAME                    0x00020000L
  245. #define MCI_QUALITY_ALG                     0x00040000L
  246. #define MCI_QUALITY_DIALOG                  0x00080000L
  247. #define MCI_QUALITY_HANDLE                  0x00100000L
  248.  
  249. /* values for dwItem field of MCI_QUALITY_PARMS structure */
  250.  
  251. #define MCI_QUALITY_ITEM_AUDIO              0x00004000L
  252. #define MCI_QUALITY_ITEM_STILL              0x00004001L
  253. #define MCI_QUALITY_ITEM_VIDEO              0x00004002L
  254.  
  255. /* flags for dwFlags parameter of MCI_REALIZE command message */
  256.  
  257. #define MCI_DGV_REALIZE_NORM                0x00010000L
  258. #define MCI_DGV_REALIZE_BKGD                0x00020000L
  259.  
  260. /* flags for dwFlags parameter of MCI_RECORD command message */
  261.  
  262. #define MCI_DGV_RECORD_HOLD                 0x00020000L
  263. #define MCI_DGV_RECORD_AUDIO_STREAM         0x00040000L
  264. #define MCI_DGV_RECORD_VIDEO_STREAM         0x00080000L
  265.  
  266. /* flags for dwFlags parameters of MCI_RESERVE command message */
  267.  
  268. #define MCI_DGV_RESERVE_IN                  0x00010000L
  269. #define MCI_DGV_RESERVE_SIZE                0x00020000L
  270.  
  271. /* flags for dwFlags parameter of MCI_RESTORE command message */
  272.  
  273. #define MCI_DGV_RESTORE_FROM                0x00010000L
  274. #define MCI_DGV_RESTORE_AT                  0x00020000L
  275.  
  276. /* flags for dwFlags parameters of MCI_SAVE command message */
  277.  
  278. #define MCI_DGV_SAVE_ABORT                  0x00020000L
  279. #define MCI_DGV_SAVE_KEEPRESERVE            0x00040000L
  280.  
  281. /* flags for dwFlags parameters of MCI_SET command message */
  282.  
  283. #define MCI_DGV_SET_SEEK_EXACTLY            0x00010000L
  284. #define MCI_DGV_SET_SPEED                   0x00020000L
  285. #define MCI_DGV_SET_STILL                   0x00040000L
  286. #define MCI_DGV_SET_FILEFORMAT              0x00080000L
  287.  
  288. /* flags for the dwFlags parameter of MCI_SETAUDIO command message */
  289.  
  290. #define MCI_DGV_SETAUDIO_OVER               0x00010000L
  291. #define MCI_DGV_SETAUDIO_CLOCKTIME          0x00020000L
  292. #define MCI_DGV_SETAUDIO_ALG                0x00040000L
  293. #define MCI_DGV_SETAUDIO_QUALITY            0x00080000L
  294. #define MCI_DGV_SETAUDIO_RECORD             0x00100000L
  295. #define MCI_DGV_SETAUDIO_LEFT               0x00200000L
  296. #define MCI_DGV_SETAUDIO_RIGHT              0x00400000L
  297. #define MCI_DGV_SETAUDIO_ITEM               0x00800000L
  298. #define MCI_DGV_SETAUDIO_VALUE              0x01000000L
  299. #define MCI_DGV_SETAUDIO_INPUT              0x02000000L
  300. #define MCI_DGV_SETAUDIO_OUTPUT             0x04000000L
  301.  
  302. /* values for the dwItem parameter of MCI_DGV_SETAUDIO_PARMS */
  303.  
  304. #define MCI_DGV_SETAUDIO_TREBLE             0x00004000L
  305. #define MCI_DGV_SETAUDIO_BASS               0x00004001L
  306. #define MCI_DGV_SETAUDIO_VOLUME             0x00004002L
  307. #define MCI_DGV_SETAUDIO_STREAM             0x00004003L
  308. #define MCI_DGV_SETAUDIO_SOURCE             0x00004004L
  309. #define MCI_DGV_SETAUDIO_SAMPLESPERSEC      0x00004005L
  310. #define MCI_DGV_SETAUDIO_AVGBYTESPERSEC     0x00004006L
  311. #define MCI_DGV_SETAUDIO_BLOCKALIGN         0x00004007L
  312. #define MCI_DGV_SETAUDIO_BITSPERSAMPLE      0x00004008L
  313.  
  314. /* values for the dwValue parameter of MCI_DGV_SETAUDIO_PARMS
  315.    used with MCI_DGV_SETAUDIO_SOURCE */
  316.  
  317. #define MCI_DGV_SETAUDIO_SOURCE_STEREO      0x00000000L
  318. #define MCI_DGV_SETAUDIO_SOURCE_LEFT        0x00000001L
  319. #define MCI_DGV_SETAUDIO_SOURCE_RIGHT       0x00000002L
  320. #define MCI_DGV_SETAUDIO_SOURCE_AVERAGE     0x00004000L
  321.  
  322. /* flags for the dwFlags parameter of MCI_SETVIDEO command */
  323.  
  324. #define MCI_DGV_SETVIDEO_QUALITY            0x00010000L
  325. #define MCI_DGV_SETVIDEO_ALG                0x00020000L
  326. #define MCI_DGV_SETVIDEO_CLOCKTIME          0x00040000L
  327. #define MCI_DGV_SETVIDEO_SRC_NUMBER         0x00080000L
  328. #define MCI_DGV_SETVIDEO_ITEM               0x00100000L
  329. #define MCI_DGV_SETVIDEO_OVER               0x00200000L
  330. #define MCI_DGV_SETVIDEO_RECORD             0x00400000L
  331. #define MCI_DGV_SETVIDEO_STILL              0x00800000L
  332. #define MCI_DGV_SETVIDEO_VALUE              0x01000000L
  333. #define MCI_DGV_SETVIDEO_INPUT              0x02000000L
  334. #define MCI_DGV_SETVIDEO_OUTPUT             0x04000000L
  335.  
  336. /* values for the dwTo field of MCI_SETVIDEO_PARMS
  337.    used with MCI_DGV_SETVIDEO_SOURCE */
  338.  
  339. #define MCI_DGV_SETVIDEO_SRC_NTSC           0x00004000L
  340. #define MCI_DGV_SETVIDEO_SRC_RGB            0x00004001L
  341. #define MCI_DGV_SETVIDEO_SRC_SVIDEO         0x00004002L
  342. #define MCI_DGV_SETVIDEO_SRC_PAL            0x00004003L
  343. #define MCI_DGV_SETVIDEO_SRC_SECAM          0x00004004L
  344. #define MCI_DGV_SETVIDEO_SRC_GENERIC        0x00004005L
  345.  
  346. /* values for the dwItem field of MCI_SETVIDEO_PARMS */
  347.  
  348. #define MCI_DGV_SETVIDEO_BRIGHTNESS         0x00004000L
  349. #define MCI_DGV_SETVIDEO_COLOR              0x00004001L
  350. #define MCI_DGV_SETVIDEO_CONTRAST           0x00004002L
  351. #define MCI_DGV_SETVIDEO_TINT               0x00004003L
  352. #define MCI_DGV_SETVIDEO_SHARPNESS          0x00004004L
  353. #define MCI_DGV_SETVIDEO_GAMMA              0x00004005L
  354. #define MCI_DGV_SETVIDEO_STREAM             0x00004006L
  355. #define MCI_DGV_SETVIDEO_PALHANDLE          0x00004007L
  356. #define MCI_DGV_SETVIDEO_FRAME_RATE         0x00004008L
  357. #define MCI_DGV_SETVIDEO_SOURCE             0x00004009L
  358. #define MCI_DGV_SETVIDEO_KEY_INDEX          0x0000400aL
  359. #define MCI_DGV_SETVIDEO_KEY_COLOR          0x0000400bL
  360. #define MCI_DGV_SETVIDEO_BITSPERPEL         0x0000400cL
  361.  
  362. /* flags for the dwFlags parameter of MCI_SIGNAL */
  363.  
  364. #define MCI_DGV_SIGNAL_AT                   0x00010000L
  365. #define MCI_DGV_SIGNAL_EVERY                0x00020000L
  366. #define MCI_DGV_SIGNAL_USERVAL              0x00040000L
  367. #define MCI_DGV_SIGNAL_CANCEL               0x00080000L
  368. #define MCI_DGV_SIGNAL_POSITION             0x00100000L
  369.  
  370. /* The following is the function digitalvideo drivers must use 
  371.  * to signal when a frame marked by the SIGNAL command has been rendered:
  372.  *
  373.  *  SEND_DGVSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos )
  374.  *
  375.  * The following is a description of the parameters:
  376.  *
  377.  *  dwFlags    - the dwFlags parameter passed when the signal was set
  378.  *  dwCallback - the dwCallback value from the MCI_DGV_SIGNAL_PARMS struct
  379.  *               used to set the signal
  380.  *  hDriver    - the handle assigned to the driver by MMSYSTEM when the 
  381.  *               device was opened
  382.  *  wDeviceID  - the device ID
  383.  *  dwUser     - the dwUserParm value from the MCI_DGV_SIGNAL_PARMS struct
  384.  *               used to set the signal
  385.  *  dwPos      - the position at which the signal was sent, in the current
  386.  *               time format.
  387.  *
  388.  * The window indicated by the handle in the dwCallback field is notified 
  389.  * by means of a Windows message with the following form:
  390.  *
  391.  * msg    = MM_MCISIGNAL
  392.  * wParam = wDeviceID of the sending driver 
  393.  * lParam = the uservalue specified or the position the signal was sent
  394.  *          at; the latter if the MCI_DGV_SIGNAL_POSITION flag was set 
  395.  *          in the dwFlags parameter when the signal was created.
  396.  */
  397.  
  398. #define SEND_DGVSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos ) \
  399.   DriverCallback( (dwCallback), DCB_WINDOW, (HANDLE)(wDeviceID), MM_MCISIGNAL,\
  400.   hDriver, ((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwPos):(dwUser),\
  401.   ((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwUser):(dwPos))
  402.  
  403. /* flags for the dwFlags parameter of MCI_STATUS command */
  404.                                             
  405. #define MCI_DGV_STATUS_NOMINAL              0x00020000L
  406. #define MCI_DGV_STATUS_REFERENCE            0x00040000L
  407. #define MCI_DGV_STATUS_LEFT                 0x00080000L
  408. #define MCI_DGV_STATUS_RIGHT                0x00100000L
  409. #define MCI_DGV_STATUS_DISKSPACE            0x00200000L
  410. #define MCI_DGV_STATUS_INPUT                0x00400000L
  411. #define MCI_DGV_STATUS_OUTPUT               0x00800000L
  412. #define MCI_DGV_STATUS_RECORD               0x01000000L
  413.  
  414. /* values for dwItem field of MCI_STATUS_PARMS structure */
  415.  
  416. #define MCI_DGV_STATUS_AUDIO_INPUT          0x00004000L
  417. #define MCI_DGV_STATUS_HWND                 0x00004001L
  418. #define MCI_DGV_STATUS_SPEED                0x00004003L
  419. #define MCI_DGV_STATUS_HPAL                 0x00004004L
  420. #define MCI_DGV_STATUS_BRIGHTNESS           0x00004005L
  421. #define MCI_DGV_STATUS_COLOR                0x00004006L
  422. #define MCI_DGV_STATUS_CONTRAST             0x00004007L
  423. #define MCI_DGV_STATUS_FILEFORMAT           0x00004008L
  424. #define MCI_DGV_STATUS_AUDIO_SOURCE         0x00004009L
  425. #define MCI_DGV_STATUS_GAMMA                0x0000400aL
  426. #define MCI_DGV_STATUS_MONITOR              0x0000400bL
  427. #define MCI_DGV_STATUS_MONITOR_METHOD       0x0000400cL
  428. #define MCI_DGV_STATUS_FRAME_RATE           0x0000400eL
  429. #define MCI_DGV_STATUS_BASS                 0x0000400fL
  430. #define MCI_DGV_STATUS_SIZE                 0x00004010L
  431. #define MCI_DGV_STATUS_SEEK_EXACTLY         0x00004011L
  432. #define MCI_DGV_STATUS_SHARPNESS            0x00004012L
  433. #define MCI_DGV_STATUS_SMPTE                0x00004013L
  434. #define MCI_DGV_STATUS_AUDIO                0x00004014L
  435. #define MCI_DGV_STATUS_TINT                 0x00004015L
  436. #define MCI_DGV_STATUS_TREBLE               0x00004016L
  437. #define MCI_DGV_STATUS_UNSAVED              0x00004017L
  438. #define MCI_DGV_STATUS_VIDEO                0x00004018L
  439. #define MCI_DGV_STATUS_VOLUME               0x00004019L
  440. #define MCI_DGV_STATUS_AUDIO_RECORD         0x0000401aL
  441. #define MCI_DGV_STATUS_VIDEO_SOURCE         0x0000401bL
  442. #define MCI_DGV_STATUS_VIDEO_RECORD         0x0000401cL
  443. #define MCI_DGV_STATUS_STILL_FILEFORMAT     0x0000401dL
  444. #define MCI_DGV_STATUS_VIDEO_SRC_NUM        0x0000401eL
  445. #define MCI_DGV_STATUS_FILE_MODE            0x0000401fL
  446. #define MCI_DGV_STATUS_FILE_COMPLETION      0x00004020L
  447. #define MCI_DGV_STATUS_WINDOW_VISIBLE       0x00004021L
  448. #define MCI_DGV_STATUS_WINDOW_MINIMIZED     0x00004022L
  449. #define MCI_DGV_STATUS_WINDOW_MAXIMIZED     0x00004023L
  450. #define MCI_DGV_STATUS_KEY_INDEX            0x00004024L
  451. #define MCI_DGV_STATUS_KEY_COLOR            0x00004025L
  452. #define MCI_DGV_STATUS_PAUSE_MODE           0x00004026L
  453. #define MCI_DGV_STATUS_SAMPLESPERSEC        0x00004027L
  454. #define MCI_DGV_STATUS_AVGBYTESPERSEC       0x00004028L
  455. #define MCI_DGV_STATUS_BLOCKALIGN           0x00004029L
  456. #define MCI_DGV_STATUS_BITSPERSAMPLE        0x0000402aL
  457. #define MCI_DGV_STATUS_BITSPERPEL           0x0000402bL
  458. #define MCI_DGV_STATUS_FORWARD              0x0000402cL
  459. #define MCI_DGV_STATUS_AUDIO_STREAM         0x0000402dL
  460. #define MCI_DGV_STATUS_VIDEO_STREAM         0x0000402eL
  461.  
  462. /* flags for dwFlags parameter of MCI_STEP command message */
  463.  
  464. #define MCI_DGV_STEP_REVERSE                0x00010000L 
  465. #define MCI_DGV_STEP_FRAMES                 0x00020000L 
  466.  
  467. /* flags for dwFlags parameter of MCI_STOP command message */
  468.  
  469. #define MCI_DGV_STOP_HOLD                   0x00010000L
  470.  
  471. /* flags for dwFlags parameter of MCI_UPDATE command message */
  472.  
  473. #define MCI_DGV_UPDATE_HDC                  0x00020000L
  474. #define MCI_DGV_UPDATE_PAINT                0x00040000L
  475.  
  476. /* flags for dwFlags parameter of MCI_WHERE command message */
  477.  
  478. #define MCI_DGV_WHERE_SOURCE                0x00020000L
  479. #define MCI_DGV_WHERE_DESTINATION           0x00040000L
  480. #define MCI_DGV_WHERE_FRAME                 0x00080000L
  481. #define MCI_DGV_WHERE_VIDEO                 0x00100000L
  482. #define MCI_DGV_WHERE_WINDOW                0x00200000L
  483. #define MCI_DGV_WHERE_MAX                   0x00400000L
  484.  
  485. /* flags for dwFlags parameter of MCI_WINDOW command message */
  486.  
  487. #define MCI_DGV_WINDOW_HWND                 0x00010000L 
  488. #define MCI_DGV_WINDOW_STATE                0x00040000L 
  489. #define MCI_DGV_WINDOW_TEXT                 0x00080000L 
  490.  
  491. /* flags for hWnd parameter of MCI_DGV_WINDOW_PARMS parameter block */
  492.  
  493. #define MCI_DGV_WINDOW_DEFAULT              0x00000000L
  494.  
  495. /* parameter block for MCI_WHERE, MCI_PUT, MCI_FREEZE, MCI_UNFREEZE cmds */
  496.  
  497. typedef struct {
  498.     DWORD   dwCallback;
  499. #ifdef MCI_USE_OFFEXT
  500.     POINT   ptOffset;
  501.     POINT   ptExtent;
  502. #else    
  503.     RECT    rc;
  504. #endif  
  505. } MCI_DGV_RECT_PARMS;
  506. typedef MCI_DGV_RECT_PARMS FAR * LPMCI_DGV_RECT_PARMS;
  507.  
  508. /* parameter block for MCI_CAPTURE command message */
  509.  
  510. typedef struct {
  511.     DWORD   dwCallback;
  512.     LPSTR   lpstrFileName;
  513. #ifdef MCI_USE_OFFEXT
  514.     POINT   ptOffset;
  515.     POINT   ptExtent;
  516. #else    
  517.     RECT    rc;
  518. #endif  
  519. } MCI_DGV_CAPTURE_PARMS;
  520. typedef MCI_DGV_CAPTURE_PARMS FAR * LPMCI_DGV_CAPTURE_PARMS;
  521.  
  522. /* parameter block for MCI_CLOSE command message */
  523.  
  524. typedef MCI_GENERIC_PARMS MCI_CLOSE_PARMS;
  525. typedef MCI_CLOSE_PARMS FAR * LPMCI_CLOSE_PARMS;
  526.  
  527. /* parameter block for MCI_COPY command message */
  528.  
  529. typedef struct {
  530.     DWORD   dwCallback;
  531.     DWORD   dwFrom;    
  532.     DWORD   dwTo;  
  533. #ifdef MCI_USE_OFFEXT
  534.     POINT   ptOffset;
  535.     POINT   ptExtent;
  536. #else    
  537.     RECT    rc;
  538. #endif  
  539.     DWORD   dwAudioStream;
  540.     DWORD   dwVideoStream;
  541. } MCI_DGV_COPY_PARMS;
  542. typedef MCI_DGV_COPY_PARMS FAR * LPMCI_DGV_COPY_PARMS;
  543.  
  544. /* parameter block for MCI_CUE command message */
  545.  
  546. typedef struct {
  547.     DWORD   dwCallback;
  548.     DWORD   dwTo;    
  549. } MCI_DGV_CUE_PARMS;
  550. typedef MCI_DGV_CUE_PARMS FAR * LPMCI_DGV_CUE_PARMS;
  551.  
  552. /* parameter block for MCI_CUT command message */
  553.  
  554. typedef struct {
  555.     DWORD   dwCallback;
  556.     DWORD   dwFrom;
  557.     DWORD   dwTo;  
  558. #ifdef MCI_USE_OFFEXT
  559.     POINT   ptOffset;
  560.     POINT   ptExtent;
  561. #else    
  562.     RECT    rc;
  563. #endif  
  564.     DWORD   dwAudioStream;
  565.     DWORD   dwVideoStream;
  566. } MCI_DGV_CUT_PARMS;
  567. typedef MCI_DGV_CUT_PARMS FAR * LPMCI_DGV_CUT_PARMS;
  568.  
  569. /* parameter block for MCI_DELETE command message */
  570.  
  571. typedef struct {
  572.     DWORD   dwCallback;
  573.     DWORD   dwFrom;
  574.     DWORD   dwTo;
  575. #ifdef MCI_USE_OFFEXT
  576.     POINT   ptOffset;
  577.     POINT   ptExtent;
  578. #else    
  579.     RECT    rc;
  580. #endif  
  581.     DWORD   dwAudioStream;
  582.     DWORD   dwVideoStream;
  583. } MCI_DGV_DELETE_PARMS;
  584. typedef MCI_DGV_DELETE_PARMS FAR * LPMCI_DGV_DELETE_PARMS;
  585.  
  586. /* parameter block for MCI_FREEZE command message */
  587.  
  588. typedef MCI_DGV_RECT_PARMS MCI_DGV_FREEZE_PARMS;
  589. typedef MCI_DGV_FREEZE_PARMS FAR * LPMCI_DGV_FREEZE_PARMS;
  590.  
  591. /* parameter block for MCI_INFO command message */
  592.  
  593. typedef struct  {
  594.     DWORD   dwCallback;
  595.     LPSTR   lpstrReturn;
  596.     DWORD   dwRetSize;
  597.     DWORD   dwItem;
  598. } MCI_DGV_INFO_PARMS;
  599. typedef MCI_INFO_PARMS FAR * LPMCI_INFO_PARMS;
  600. typedef MCI_DGV_INFO_PARMS FAR * LPMCI_DGV_INFO_PARMS;
  601.  
  602. /* parameter block for MCI_LIST command message */
  603.  
  604. typedef struct {
  605.     DWORD   dwCallback;
  606.     LPSTR   lpstrReturn;
  607.     DWORD   dwLength;
  608.     DWORD   dwNumber;
  609.     DWORD   dwItem;
  610.     LPSTR   lpstrAlgorithm;
  611. } MCI_DGV_LIST_PARMS;
  612. typedef MCI_DGV_LIST_PARMS FAR * LPMCI_DGV_LIST_PARMS;
  613.  
  614. /* parameter block for MCI_LOAD command message */
  615.  
  616. typedef MCI_LOAD_PARMS MCI_DGV_LOAD_PARMS;   
  617. typedef MCI_DGV_LOAD_PARMS FAR * LPMCI_DGV_LOAD_PARMS;
  618.  
  619. /* parameter block for MCI_MONITOR command message */
  620.  
  621. typedef struct {
  622.     DWORD   dwCallback;
  623.     DWORD   dwSource;
  624.     DWORD   dwMethod;
  625. } MCI_DGV_MONITOR_PARMS;
  626. typedef MCI_DGV_MONITOR_PARMS FAR * LPMCI_DGV_MONITOR_PARMS;
  627.  
  628. /* parameter block for MCI_OPEN command message */
  629.  
  630. typedef struct {
  631.     DWORD   dwCallback;
  632.     WORD    wDeviceID;
  633.     WORD    wReserved0;
  634.     LPSTR   lpstrDeviceType;
  635.     LPSTR   lpstrElementName;
  636.     LPSTR   lpstrAlias;
  637.     DWORD   dwStyle;
  638.     HWND    hWndParent;
  639.     WORD    wReserved1;
  640. } MCI_DGV_OPEN_PARMS;
  641. typedef MCI_DGV_OPEN_PARMS FAR * LPMCI_DGV_OPEN_PARMS;
  642.  
  643. /* parameter block for MCI_PAUSE command message */
  644.  
  645. typedef MCI_GENERIC_PARMS MCI_DGV_PAUSE_PARMS;
  646. typedef MCI_DGV_PAUSE_PARMS FAR * LPMCI_DGV_PAUSE_PARMS;
  647.  
  648. /* parameter block for MCI_PASTE command message */
  649.  
  650. typedef struct {
  651.     DWORD   dwCallback;
  652.     DWORD   dwTo;  
  653. #ifdef MCI_USE_OFFEXT
  654.     POINT   ptOffset;
  655.     POINT   ptExtent;
  656. #else    
  657.     RECT    rc;
  658. #endif  
  659.     DWORD   dwAudioStream;
  660.     DWORD   dwVideoStream;
  661. } MCI_DGV_PASTE_PARMS;
  662. typedef MCI_DGV_PASTE_PARMS FAR * LPMCI_DGV_PASTE_PARMS;
  663.  
  664. /* parameter block for MCI_PLAY command message */
  665.  
  666. typedef MCI_PLAY_PARMS MCI_DGV_PLAY_PARMS;
  667. typedef MCI_DGV_PLAY_PARMS FAR * LPMCI_DGV_PLAY_PARMS;
  668.  
  669. /* parameter block for MCI_PUT command message */
  670.  
  671. typedef MCI_DGV_RECT_PARMS MCI_DGV_PUT_PARMS;
  672. typedef MCI_DGV_PUT_PARMS FAR * LPMCI_DGV_PUT_PARMS;
  673.  
  674. /* parameter block for MCI_QUALITY command message */
  675.  
  676. typedef struct {
  677.     DWORD       dwCallback;
  678.     DWORD       dwItem;
  679.     LPSTR       lpstrName;
  680.     DWORD       lpstrAlgorithm;
  681.     DWORD       dwHandle;
  682. } MCI_DGV_QUALITY_PARMS;
  683. typedef MCI_DGV_QUALITY_PARMS FAR * LPMCI_DGV_QUALITY_PARMS;
  684.  
  685. /* parameter block for MCI_REALIZE command message */
  686.  
  687. typedef MCI_GENERIC_PARMS MCI_REALIZE_PARMS;
  688. typedef MCI_REALIZE_PARMS FAR * LPMCI_REALIZE_PARMS;
  689.  
  690. /* parameter block for MCI_RECORD command message */
  691.  
  692. typedef struct {
  693.     DWORD   dwCallback;
  694.     DWORD   dwFrom;
  695.     DWORD   dwTo;
  696. #ifdef MCI_USE_OFFEXT
  697.     POINT   ptOffset;
  698.     POINT   ptExtent;
  699. #else    
  700.     RECT    rc;
  701. #endif  
  702.     DWORD   dwAudioStream;
  703.     DWORD   dwVideoStream;
  704. } MCI_DGV_RECORD_PARMS;
  705. typedef MCI_DGV_RECORD_PARMS FAR * LPMCI_DGV_RECORD_PARMS;
  706.  
  707. /* parameter block for MCI_RESERVE command message */
  708.  
  709. typedef struct {
  710.     DWORD   dwCallback;
  711.     LPSTR   lpstrPath;
  712.     DWORD   dwSize;
  713. } MCI_DGV_RESERVE_PARMS;
  714. typedef MCI_DGV_RESERVE_PARMS FAR * LPMCI_DGV_RESERVE_PARMS;
  715.  
  716. /* parameter block for MCI_RESTORE command message */
  717.  
  718. typedef struct {
  719.     DWORD   dwCallback;
  720.     LPSTR   lpstrFileName;
  721. #ifdef MCI_USE_OFFEXT
  722.     POINT   ptOffset;
  723.     POINT   ptExtent;
  724. #else    
  725.     RECT    rc;
  726. #endif  
  727. } MCI_DGV_RESTORE_PARMS;
  728. typedef MCI_DGV_RESTORE_PARMS FAR * LPMCI_DGV_RESTORE_PARMS;
  729.  
  730. /* parameter block for MCI_RESUME command message */
  731.  
  732. typedef MCI_GENERIC_PARMS MCI_DGV_RESUME_PARMS;
  733. typedef MCI_DGV_RESUME_PARMS FAR * LPMCI_DGV_RESUME_PARMS;
  734.  
  735. /* parameter block for MCI_SAVE command message */
  736.  
  737. typedef struct {
  738.     DWORD   dwCallback;
  739.     LPSTR   lpstrFileName;
  740.     RECT    rc;
  741. } MCI_DGV_SAVE_PARMS;
  742. typedef MCI_DGV_SAVE_PARMS FAR * LPMCI_DGV_SAVE_PARMS;
  743.  
  744. /* parameter block for MCI_SET command message */
  745.  
  746. typedef struct {
  747.     DWORD   dwCallback;
  748.     DWORD   dwTimeFormat;
  749.     DWORD   dwAudio;
  750.     DWORD   dwFileFormat;
  751.     DWORD   dwSpeed;
  752. } MCI_DGV_SET_PARMS;
  753. typedef MCI_DGV_SET_PARMS FAR * LPMCI_DGV_SET_PARMS;
  754.  
  755. /* parameter block for MCI_SETAUDIO command message */
  756.  
  757. typedef struct {
  758.     DWORD   dwCallback;
  759.     DWORD   dwItem;
  760.     DWORD   dwValue;
  761.     DWORD   dwOver;
  762.     LPSTR   lpstrAlgorithm;
  763.     LPSTR   lpstrQuality;
  764. } MCI_DGV_SETAUDIO_PARMS;
  765. typedef MCI_DGV_SETAUDIO_PARMS FAR * LPMCI_DGV_SETAUDIO_PARMS;
  766.  
  767. /* parameter block for MCI_SIGNAL command message */
  768.  
  769. typedef struct {
  770.     DWORD   dwCallback;
  771.     DWORD   dwPosition;
  772.     DWORD   dwPeriod;
  773.     DWORD   dwUserParm;
  774. } MCI_DGV_SIGNAL_PARMS;
  775. typedef MCI_DGV_SIGNAL_PARMS FAR * LPMCI_DGV_SIGNAL_PARMS;
  776.  
  777. /* parameter block for MCI_SETVIDEO command message */
  778.  
  779. typedef struct {
  780.     DWORD   dwCallback;
  781.     DWORD   dwItem;
  782.     DWORD   dwValue;
  783.     DWORD   dwOver;
  784.     LPSTR   lpstrAlgorithm;
  785.     LPSTR   lpstrQuality;
  786.     DWORD   dwSourceNumber;
  787. } MCI_DGV_SETVIDEO_PARMS;
  788. typedef MCI_DGV_SETVIDEO_PARMS FAR * LPMCI_DGV_SETVIDEO_PARMS;
  789.  
  790. /* parameter block for MCI_STATUS command message */
  791.  
  792. typedef struct {
  793.     DWORD   dwCallback;
  794.     DWORD   dwReturn;
  795.     DWORD   dwItem;
  796.     DWORD   dwTrack;
  797.     LPSTR   lpstrDrive;
  798.     DWORD   dwReference;
  799. } MCI_DGV_STATUS_PARMS;
  800. typedef MCI_DGV_STATUS_PARMS FAR * LPMCI_DGV_STATUS_PARMS;
  801.  
  802. /* parameter block for MCI_STEP command message */
  803.  
  804. typedef struct {
  805.     DWORD   dwCallback;
  806.     DWORD   dwFrames;
  807. } MCI_DGV_STEP_PARMS;
  808. typedef MCI_DGV_STEP_PARMS FAR *LPMCI_DGV_STEP_PARMS;
  809.  
  810. /* parameter block for MCI_STOP command message */
  811.  
  812. typedef MCI_GENERIC_PARMS MCI_DGV_STOP_PARMS;
  813. typedef MCI_DGV_STOP_PARMS FAR * LPMCI_DGV_STOP_PARMS;
  814.  
  815. /* parameter block for MCI_UNFREEZE command message */
  816.  
  817. typedef MCI_DGV_RECT_PARMS MCI_DGV_UNFREEZE_PARMS;
  818. typedef MCI_DGV_UNFREEZE_PARMS FAR * LPMCI_DGV_UNFREEZE_PARMS;
  819.  
  820. /* parameter block for MCI_UPDATE command message */
  821.  
  822. typedef struct {
  823.     DWORD   dwCallback;
  824. #ifdef MCI_USE_OFFEXT
  825.     POINT   ptOffset;
  826.     POINT   ptExtent;
  827. #else    
  828.     RECT    rc;
  829. #endif  
  830.     HDC     hDC;
  831.     WORD    wReserved0;
  832. } MCI_DGV_UPDATE_PARMS;
  833. typedef MCI_DGV_UPDATE_PARMS FAR * LPMCI_DGV_UPDATE_PARMS;
  834.  
  835. /* parameter block for MCI_WHERE command message */
  836.  
  837. typedef MCI_DGV_RECT_PARMS MCI_DGV_WHERE_PARMS;
  838. typedef MCI_DGV_WHERE_PARMS FAR * LPMCI_DGV_WHERE_PARMS;
  839.  
  840. /* parameter block for MCI_WINDOW command message */
  841.  
  842. typedef struct {
  843.     DWORD   dwCallback;
  844.     HWND    hWnd;
  845.     WORD    wReserved1;
  846.     WORD    nCmdShow;
  847.     WORD    wReserved2;
  848.     LPSTR   lpstrText;
  849. } MCI_DGV_WINDOW_PARMS;
  850. typedef MCI_DGV_WINDOW_PARMS FAR * LPMCI_DGV_WINDOW_PARMS;
  851.  
  852. #ifdef __cplusplus
  853. }                       /* End of extern "C" { */
  854. #endif    /* __cplusplus */
  855.  
  856. #ifndef RC_INVOKED
  857. #pragma pack()
  858. #endif  /* RC_INVOKED */
  859.  
  860. #endif  /* !NODIGITALV */
  861.  
  862. #endif  /* !_INC_DIGITALV */
  863.